home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / lblcs.arc / KEY_SCAN.ASM < prev    next >
Assembly Source File  |  1985-04-17  |  1KB  |  66 lines

  1.  
  2. ;---------------------------------------------------------------------
  3. ; name        key_scan - see if key is available from keyboard
  4. ;
  5. ; synopsis    ch = key_scan();
  6. ;
  7. ; description    Check the DOS keyboard buffer for characters available.
  8. ;        returns 0 if no characters area available, or character
  9. ;        and scan code in the same manner as key_getch().  Note
  10. ;        that this routine does not remove characters from the
  11. ;        buffer - you must use key_getch() to do that.  Several
  12. ;        calls to this routine will return the same character -
  13. ;        i.e. the first character available in keyboard buffer.
  14. ;
  15. ; Notes:
  16. ;        NOT identical to the CI-C86 library function of the 
  17. ;        same name, which returns EOF or 0xffff if no chars
  18. ;        are available.
  19. ;---------------------------------------------------------------------
  20.  
  21.  
  22.  
  23.  
  24.     include    dos.mac
  25.  
  26. keyboard    equ    16h        ; video interrupt number
  27.  
  28.  
  29.     IF    LPROG
  30. X    EQU    6        ;OFFSET OF ARGUMENTS
  31.     ELSE
  32. X    EQU    4        ;OFFSET OF ARGUMENTS
  33.     ENDIF
  34.  
  35.     PSEG
  36.  
  37.  
  38.     PUBLIC    key_scan
  39.  
  40.  
  41.     IF    LPROG
  42. key_scan    PROC    FAR
  43.     ELSE
  44. key_scan    PROC    NEAR
  45.     ENDIF
  46.  
  47.     push    bp
  48.  
  49.     mov    ah,1        ; scan keyboard function
  50.     int    keyboard
  51.     jz    no_key        ; no character available
  52.     jmp    short done
  53. no_key:    xor    ax,ax        ; return Z condition
  54. done:    pop    bp   
  55.     ret
  56.  
  57. key_scan    ENDP
  58.  
  59.  
  60.     endps
  61.     end
  62.  
  63.  
  64.  
  65.